package collection;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

/**
 * 数组转换为集合
 * 数组的工具类Arrays提供了一个静态方法asList，可以将一个数组转换为一个List集合
 */
public class ArrayToListDemo {
    public static void main(String[] args) {
        String[] array = {"a", "b", "c", "d", "e"};
        System.out.println("array:"+Arrays.toString(array));

        List<String> list = Arrays.asList(array);
        System.out.println("list:"+list);
        //对集合操作就是对原数组的操作
        list.set(0, "A");
        System.out.println("list:"+list);
        System.out.println("array:"+Arrays.toString(array));
        /*
            由于数组是定长的，因此会改变元素个数的操作都会抛出异常
            java.lang.UnsupportedOperationException
                      不支持      操作      异常
         */
//        list.add("f");//报错

        //如果希望增删元素只能自行创建一个集合,并包含原集合所有元素
//        List<String> list2 = new ArrayList<>();
//        list2.addAll(list);
        //集合提供了一个构造器可以在创建集合同时包含给定集合所有元素
        List<String> list2 = new ArrayList<>(list);
        list2.add("f");
        System.out.println("list2:"+list2);
    }
}
